# 依赖gtest框架（若未安装，会自动下载）
gtest_dep = dependency(
  'gtest',
  fallback : ['gtest', 'gtest_dep'],
  required : true
)

# 构建单例测试可执行文件
test_sources = [
  'Singleton_test.cc',
  'ThreadSafeQueue_test.cpp',
  'Thread_test.cc',
  'DateTime_test.cc',
  'ThreadPool_test.cc',
  'Properties_test.cc',
  'log_test.cc',
  'Demuxer_test.cc',
]

# 遍历每个源文件，生成对应的可执行程序
foreach source : test_sources
    # 提取文件名（不含扩展名）作为可执行程序名
    exe_name = source.split('.')[0]
    
    # 为每个源文件创建独立的可执行程序
    exe = executable(
        exe_name,
        source,
        dependencies : [cytoolkit_dep, gtest_dep],  # 共享依赖
        install : false  # 测试程序不安装
    )

    # 同时添加测试目标（可选，方便运行 meson test）
    test(
        exe_name,
        exe,
        args : ['--gtest_color=yes']
    )
endforeach
